package DAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import javax.faces.model.DataModel;

import util.HibernateUtil;
import visao.DeterminacaoVO;
import visao.ElementoVO;

public class ElementoVODAO {

	public List<ElementoVO> buscaElementoPorDeterminacao(
			DataModel<DeterminacaoVO> determinacao) {

		List<ElementoVO> listaRetorno = new ArrayList<ElementoVO>();

		StringBuilder sql = new StringBuilder();
		sql.append("select distinct e.sigla, e.descricao from elemento e ");
		sql.append("inner join determinacaoelemento de on de.id_elemento = e.codigo ");
		sql.append("inner join determinacao d on d.codigo = de.id_determinacao where d.codigo = "
				+ determinacao);

		try {

			Connection conexao = HibernateUtil.getSessionFactory()
					.openSession().connection();
			PreparedStatement comando = conexao
					.prepareStatement(sql.toString());
			ResultSet resultado = comando.executeQuery();

			while (resultado.next()) {

				ElementoVO linha = new ElementoVO();

				linha.setSiglaElemento("e.sigla");
				linha.setElemento("e.descricao");

				listaRetorno.add(linha);
			}

			conexao.close();

		} catch (Exception e) {

			e.printStackTrace();

		}

		return listaRetorno;
	}
}
